package com.gouwudai.gobbs.service;

import java.util.HashMap;
import java.util.List;

import com.gouwudai.gobbs.common.IPageList;
import com.gouwudai.gobbs.pojo.TbbsTopicRe;
import com.litt.core.exception.DBException;

/**
 * <pre>
 *  Title:TODO
 *  Description: TODO  
 * </pre>
 * 
 * @author <a href="mailto:littcai@hotmail.com">空心大白菜</a>
 * @date 2007-3-29
 * @version 1.0
 * <pre>
 * 修改记录
 *    修改后版本:     修改人：  修改日期:     修改内容: 
 * </pre>
 */
public interface ITopicReService {

	TbbsTopicRe load(Integer id);

	/**
	 * 结帖给分
	 * @param topicId
	 * @param userMarkMap
	 * @return
	 */
	void doGiveMark(Integer topicId, HashMap userMarkMap);

	/**
	 * 逻辑删除回复
	 * @param topicReIds
	 * @throws DBException
	 */
	void deleteLogic(String[] topicReIds);

	/**
	 * 逻辑删除单条回复
	 * @param topicReId
	 * @throws DBException
	 */
	void deleteLogic(int topicReId);

	/**
	 * 恢复已删除回复
	 * @param topicReIds
	 * @throws DBException
	 */
	void doResume(String[] topicReIds);

	/**
	 * 物理删除
	 * @param Id
	 * @return
	 */
	void delete(Integer Id);

	/**
	 * 查询当前主题的回复信息
	 * @param topicId
	 * @param pageIndex
	 * @param pageSize
	 * @return
	 * @throws DBException
	 */
	List listByTopic(Integer topicId, int pageIndex, int pageSize);

    /**
     * 统计用户对该主题的回复数量
     * 使用过的地方：“回复可见”
     * @param topicId
     * @param userId
     */
    public int listCountByReUser(Integer topicId,Integer userId);
	
	/**
	 * 查询当前主题的回复信息数量（供分页）
	 * @param topicId
	 * @param pageIndex
	 * @param pageSize
	 * @return
	 * @throws DBException
	 */
	int listCountByTopic(Integer topicId);

	/**
	 * 查询获得积分的用户
	 * @param topicId
	 * @return
	 * @throws DBException
	 */
	List listGetMark(Integer topicId);

	IPageList listPage(int pageIndex, int pageSize);

}